/**
 * 
 */
package fr.gfi.agraf.service;

import java.util.List;

import fr.gfi.agraf.exception.AgrafException;
import fr.gfi.agraf.vue.bean.ActiviteDTO;
import fr.gfi.agraf.vue.bean.DonneesAjaxActivitesByPerimetre;

/**
 * @author Fw
 * 
 */
public interface IActiviteService {

	/**
	 * Récupére toutes les activité liées a un périmetre
	 * ou liées à un périmetre et un utilisateur
	 * 
	 * @param idPerimetre
	 * @return liste activite DTO
	 */
	public DonneesAjaxActivitesByPerimetre getListeActivitesByPerimetreAndUtilisateur(final Long idPerimetre,final Long idUtilisateur);

	/**
	 * Modifie un périmetre, c'est a dire son libelle s'il a changé, il supprime
	 * les activités si elle ne sont pas liées a une tache, et modifie les
	 * attributs
	 * 
	 * @param libellePerimetre
	 * @param listeIdActiviteToDelete
	 * @param listeActiviteToModif
	 * @throws AgrafException
	 */
	public void modifierPerimetreFromIHM(final Long idPerimetre, final String libellePerimetre,
			final List<Long> listeIdActiviteToDelete, final List<ActiviteDTO> listeActiviteToModif,
			final List<ActiviteDTO> listeNouvellesActivites) throws AgrafException;

}
